package com.shiroha.video.service;

import com.shiroha.video.jellyfin.client.request.ItemMetaData;
import com.shiroha.video.jellyfin.client.response.MediaResponse;
import com.shiroha.video.pojo.dto.WorkMetaData;
import org.springframework.web.multipart.MultipartFile;

/**
 * Jellyfin服务
 */
public interface IJellyfinService {

    /**
     * 上传视频到 Jellyfin 媒体文件夹
     * @param workMetaData 作品元数据
     * @param file 视频文件
     * @throws Exception 上传失败
     */
    void uploadVideo(WorkMetaData workMetaData, MultipartFile file) throws Exception;

    /**
     * 获取视频的播放 URL 和 封面 URL
     * @param workMetaData 作品元数据
     * @return 包含视频的播放 URL 和封面 URL
     * @throws Exception 当 API 访问失败时抛出
     */
    MediaResponse getMediaResponse(WorkMetaData workMetaData) throws Exception;

    /**
     * 更新视频元数据
     * @param itemMetaData 作品元数据
     */
    void updateVideo(ItemMetaData itemMetaData);

    /**
     * 获取作品预览图
     * @param itemId itemId
     * @param tag 标签
     * @return 图像字节数组
     */
    byte[] getWorkPrimaryImage(String itemId, String tag);
}
